package vue.panneau1;
import java.awt.event.*;
import javax.swing.*;

import modele.Equation2D;
import modele.Equation3D;

public class MenuContextuelEquation extends JPopupMenu implements ActionListener
{
	private static final long serialVersionUID = 1L;
	private Interface2DZone1 zone2D;
	private Interface3DZone1 zone3D;
	private Equation2D equationCourante2D;
	private Equation3D equationCourante3D;
	private JMenuItem jmiLibelleContrainte,jmiAjouter,jmiModifier,jmiSupprimer;	
	private int index;
	private boolean is3D;
	
	/*
	 * Constructeur appele lorsqu'on n'a pas selectionne une equation dans la zone 1
	 */
	public MenuContextuelEquation(Object interfaceZone1,boolean is3D)
	{
		if(is3D)
		{
			this.zone3D = (Interface3DZone1)interfaceZone1;
			this.equationCourante3D = null;
		}
		else
		{
			this.zone2D = (Interface2DZone1)interfaceZone1;
			this.equationCourante2D = null;
		}
		
		this.is3D = is3D;
		
		jmiAjouter = new JMenuItem("Ajouter");
		jmiAjouter.setMnemonic('A');
		jmiAjouter.setActionCommand("ajouter");
		jmiAjouter.addActionListener(this);			
	
		this.add(jmiAjouter);
	}
	
	/*
	 * Constructeur appele lorsqu'on a selectionne une equation dans la zone 1
	 */
	public MenuContextuelEquation(Object interfaceZone1,Object equationCourante,int index,boolean is3D)
	{
		if(is3D)
		{
			this.zone3D = (Interface3DZone1)interfaceZone1;
			this.equationCourante3D = (Equation3D)equationCourante;
		}
		else
		{
			this.zone2D = (Interface2DZone1)interfaceZone1;
			this.equationCourante2D = (Equation2D)equationCourante;
		}
		
		this.index = index;
		this.is3D = is3D;
		
		jmiLibelleContrainte = new JMenuItem("Choisir un libellé");	
		jmiLibelleContrainte.setMnemonic('C');
		jmiLibelleContrainte.setActionCommand("choisir_libelle");
		jmiLibelleContrainte.addActionListener(this);	
		
		jmiAjouter = new JMenuItem("Ajouter");
		jmiAjouter.setMnemonic('A');
		jmiAjouter.setActionCommand("ajouter");
		jmiAjouter.addActionListener(this);			
			
		jmiModifier = new JMenuItem("Modifier");
		jmiModifier.setMnemonic('M');
		jmiModifier.setActionCommand("modifier");
		jmiModifier.addActionListener(this);
			
		jmiSupprimer = new JMenuItem("Supprimer");
		jmiSupprimer.setMnemonic('S');
		jmiSupprimer.setActionCommand("supprimer");
		jmiSupprimer.addActionListener(this);	
		
		this.add(jmiLibelleContrainte);
		this.addSeparator();			
		this.add(jmiAjouter);
		this.add(jmiModifier);
		this.add(jmiSupprimer);		
	}

	public void actionPerformed(ActionEvent e) 
	{
		String cmd = e.getActionCommand();
		
		if(is3D)
		{
			if(cmd.equals("choisir_libelle"))
			{
				new PopupChoixLibelleContrainte(zone3D,index,is3D);
			}
			if(cmd.equals("ajouter"))
			{
				new PopupActionEquation3D(zone3D,equationCourante3D,"ajout");
			}
			if(cmd.equals("modifier"))
			{
				new PopupActionEquation3D(zone3D,equationCourante3D,"modif");
			}
			if(cmd.equals("supprimer"))
			{
				zone3D.supprimerEquation();
			}
		}
		else
		{
			if(cmd.equals("choisir_libelle"))
			{
				new PopupChoixLibelleContrainte(zone2D,index,is3D);
			}
			if(cmd.equals("ajouter"))
			{
				new PopupActionEquation2D(zone2D,equationCourante2D,"ajout");
			}
			if(cmd.equals("modifier"))
			{
				new PopupActionEquation2D(zone2D,equationCourante2D,"modif");
			}
			if(cmd.equals("supprimer"))
			{
				zone2D.supprimerEquation();
			}
		}
	}
}
